package L610;

import util.ListNode;

/**
 * @program: javase
 * @description: 两个链表相交位置
 * @author: luolidong
 * @create: 2021-06-11 20:50
 * @version: 1.0
 */
public class Demo2 {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) {
            return null;
        }
        ListNode a = headA;
        ListNode b = headB;
        while (a != b) {
            // 因为要遍历两链表，遍历长度相同，最后没有相交也是同时为null
            // 因此不会死循环
            a = a == null ? headB : a.next;
            b = b == null ? headA : b.next;
            // if (a == b) {
            //     return a;
            // }
        }
        return a;
    }
}
